Lumia 950 / Windows 10
This is a sequence of steps to perform regular Windows 10 Pro image install onto your Lumia AArch64 phones (Lumia 950 and Lumia 950 XL).
TOC
— FFU: Firmware Update
— UNLOCK: Unlock Bootloader
— GPT: Allocate Partitions
— EFI: Install EFI Applications
— BCD: Edit BCD Store
— WIM: Apply Windows Image, Drivers and Packages
— WOA: Do all the steps starting from the GPT automatically!
FFU
I want to assure you that this is very hard to brake the phone. Even if you destroy the phone partition this is restorable with Windows Device Recovery Tool which is official Nokia/Microsoft tool for service centers. This tool will download a latest firmware from support servers (still operate) and flash your phone even with broken partitions (just need to do it twice). There are other ways to flash FFU, e.g. from WPInternals.
So the first step is to perform firmware update with Windows Device Recovery Tool.
UNLOCK
We need to unlock the phone to manipulate with GPT. This is done by WPInternals tool which is well crafted .NET application that supports all Lumia phones line up to first Lumia 800. NOTE: Unlocking bootloader will block official Windows Update channel, so before gold install you need to update Windows 10 Mobile a little bit.
The phone can be in one of 4 modes: 1) Normal mode (when you pluggin the phone with default drivers in host OS); 2) Flash mode (for unlocking and locking the bootloader, needed for our experiments); 3) Mass-storage mode (for manipulating with direct access to GPT); 4) Label-mode (we don't need it).
There are only following name and root key hashes combinations (Lumia AA64 models). The code for determining the model could be found in Deployer.Lumia.NetFx namespace. This information is needed to know which drivers should be applied to Windows folder from WIM image.
NOTE: Hapanero is an engineering sample with code RX-130; Lumia 950 has following codes: RM-1104, RM-1105, RM-1118 (Talkman); Lumia 950 XL: RM-1116, RM-1085 (Cityman). It's hard to buy such devices, impossible new.
So the second step is to unlock your phone with WPInternals tool. During this step WPInternals will force you to download freshly updated firmare to your disk as FFU file, so later you can WPInternals to flash too. Also this is a way how FFU files are being distributed over internet among enthusiasts.
GPT
GPT is a new MBR. First let's investigate after unlocking the original GPT layout of your Lumia:
You can do everything from Disk Management console however for the sake of simplicity here we will use only command line built-in tools from Windows. For Windows 10 setup we will need 3 partitions:
This can be done either in Disk Management console or by diskpart. It's always better to use official Windows tools.
So the second step is to allocate three partitions for Windows 10 Pro setup.
EFI
EFI is a a new BIOS. Three years ago I made two notes about EFI: LUA.EFI and State of EFI in 2016. I love hacking EFI. So we basically need to setup three EFI applications and one UEFI.elf: 1) BootShim.efi for booting Windows 10 Pro (); 2) developermenu.efi for developer menu inside NTOSLDR with diagnostic routines and Mass-storage mode enabler; 3) WinLoad.efi for bootin Windows 10 Mobile; 4) UEFI.elf. These file should be placed at following locations:
You may add other EFI application on your AA64 system. Let's report all useful EFI projects for ARM64!
BCD
BCD is like GRUB or uboot but for Windows. The normal sequence procedure swipe out all BCD entries and recreate everything from scratch for GUID retrivals.
The BCD entry for booting Windows 10 Mobile from MainOS partition should be like that:
The BCD entry for booting Windows 10 Pro from new partition "Windows 10" should be like that:
For each partition {x} perform nessesary flags and after that list all your partitions you want to include into NTOSLDR boot menu. It may include all EFI modules you may found running or developed by yourself!
WIM
DISM is the tool for managing WIM images, apply them to partitions, patch drivers and service packages. WIM is new ISO-9660 from Microsoft created especially for Windows provisioning. E: drive here contains regular ISO image of Windows 10 for ARM64.
Also you need to copy root of DPP partition to 'Windows:\DPP' folder location. This is final step, now you need to temporarily disable dual boot:
After then you reboot the phone, chose Windows 10 in NTOSLDR and proceed the Windows Setup. When is's done reboot in the Developers Menu, chose Mass-storage mode and restore dual boot with:
Now enjoy your Windows 10 Pro with dual boot in Lumia 950.
I also made video cut of Windows Setup experience as instagram story for those who want to see all the glitches and unveil the real step by step setup.
WOA
WOA brand means Windows on ARM64. Everything starting from GPT step could be done automatically by WOA Deployer tool written by José Manuel Nieto Sánchez who helped to make this post clean, who enlightened essential parts and clarified the nessesary sequences to complete the setup. This manual is slightly based on his pre-WOA document, also at the end here is historical video of first runs. Find the latests release builds or build WOA Deployer yourself (it's under MIT license):
— WOA-Project/WOA-Deployer-Lumia — 2.5.5
Fix typo, introduce changes or put like for this page at:
Lumia WoA
Discuss: https://github.com/5ht/tonpa.guru/issues/10